home *** CD-ROM | disk | FTP | other *** search
- /*
- File: OAM.h
-
- Contains: OAM Client Interfaces.
-
- Copyright: © 1995-1996 by Apple Computer, Inc.
- All rights reserved.
-
- */
-
- #ifndef __OAM__
- #define __OAM__
-
- #ifndef __OAMTYPES__
- #include "OAMTypes.h"
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=mac68k
- #endif
- /*******************************************************************************\
- *
- * Initialization functions
- *
- \*******************************************************************************/
-
- OAMStatus OAMInitialize(int numSessions, int maxNumCalls, OAMBufferDescriptor* buffer_i,OAMOption* flags_i);
- OAMStatus OAMDeInitialize();
-
- /*******************************************************************************\
- *
- * Lookup functions
- *
- \*******************************************************************************/
-
- OSStatus OAMFindServer(OAMServerLocator *locator_i,
- OAMBufferDescriptor *buffer_o,
- int *numInBuffer_o,
- int *numFound_o,
- OAMOption *options);
-
- OAMStatus OAMFindServerExtract(OAMBufferDescriptor *buffer_i,
- int index_i,
- OAMServerSpec* spec_o);
-
- /*******************************************************************************\
- *
- * Session functions
- *
- \*******************************************************************************/
-
- int OAMGetSize(int numSessions, int maxNumCalls);
-
-
- OSStatus OAMGetLocalServerStatus(UInt32 *serverStatus);
-
- enum { kOAMOptionMemory = ' mem' };
- OAMStatus OAMOpenSession(OAMServerSpec* server_i,
- OAMSessionID* sessID_o,
- OAMOption *options);
-
- OAMStatus OAMCloseSession(OAMSessionID sessID_o,
- OAMOption *options);
-
- OAMStatus OAMAuthenticateSession(OAMSessionID sessID,
- OAMObjectSpec* user,
- OAMKey* key,
- OAMOption *options);
-
- /*******************************************************************************\
- *
- * Object functions
- *
- \*******************************************************************************/
-
- OAMStatus OAMCreateObject(OAMSessionID sessID,
- OAMObjectSpec* object,
- OAMAttributeDescriptor *attr,
- OAMOption *options);
-
- OAMStatus OAMDeleteObject(OAMSessionID sessID,
- OAMObjectSpec* object,
- OAMOption *options);
-
- OAMStatus OAMGetAttribute(OAMSessionID sessID,
- OAMObjectSpec* object,
- OAMAttributeDescriptor *attr,
- OAMOption *options);
-
- OAMStatus OAMSetAttribute(OAMSessionID sessID,
- OAMObjectSpec* key,
- OAMAttributeDescriptor *attr,
- OAMOption *options);
-
- OAMStatus OAMDeleteAttribute(OAMSessionID sessID,
- OAMObjectSpec* object,
- OAMAttributeDescriptor *attr,
- OAMOption *options);
-
- /*******************************************************************************\
- *
- * Group functions
- *
- \*******************************************************************************/
-
- OAMStatus OAMIsGroupMember(OAMSessionID sessID,
- OAMObjectSpec* group,
- OAMObjectSpec* member,
- Boolean *isMember,
- OAMOption *options);
-
- OAMStatus OAMAddGroupMember(OAMSessionID sessID,
- OAMObjectSpec* group,
- OAMObjectSpec* newMember,
- OAMOption *options);
-
- OAMStatus OAMRemoveGroupMember(OAMSessionID sessID,
- OAMObjectSpec* group,
- OAMObjectSpec* oldMember,
- OAMOption *options);
-
- /*******************************************************************************\
- *
- * Iteration functions
- *
- \*******************************************************************************/
-
- OAMStatus OAMIterate(OAMSessionID sessID,
- OAMIterationSpec* iterSpec,
- OAMAttributeDescriptor *desc,
- OAMBufferDescriptor *buffer,
- OAMOption *options);
-
- OAMStatus OAMParseAttributeBuffer(OAMBufferDescriptor *buffer, OAMAttributeDescriptor *desc, OAMParseInfo* parseInfo);
-
- OAMStatus OAMParseGetNextObject(OAMParseInfo* parseInfo, OAMObjectSpec* object);
-
- OAMStatus OAMParseGetNextAttribute(OAMParseInfo* parseInfo, OAMAttributeDescriptor* attr);
-
-
- /*******************************************************************************\
- *
- * Notification functions
- *
- \*******************************************************************************/
-
- OAMStatus OAMSetNotificationProc(OAMSessionID sessID,
- OAMNotificationUPP procPtr,
- OAMOption *options);
-
- OAMStatus OAMRequestNotification(OAMSessionID sessionID,
- OAMNotificationSpec *notificationSpec,
- OAMOption *options);
-
- // Remote sessions must call this on a separate thread if they want notifications
- // when no other calls are pending. This call returns when OAMDeInitialize() is called.
- // NOTE: This call is _not_ needed locally!
- OAMStatus OAMBecomeHelperThread();
-
- /*******************************************************************************\
- *
- * Service functions
- *
- \*******************************************************************************/
-
- OAMStatus OAMStartService(OAMSessionID sessID,
- OAMObjectSpec* objectSpec,
- OAMOption *options);
-
- OAMStatus OAMStopService(OAMSessionID sessID,
- OAMObjectSpec* objectSpec,
- OAMOption *options);
-
-
- /*******************************************************************************\
- *
- * UAM functions
- *
- \*******************************************************************************/
-
- enum { kOAMAuthLogin, kOAMAuthLoginContinue, kOAMAuthChangeKey, kOAMAuthChangeKeyContinue };
- enum { kOAMAuthStream = 1 };
-
- typedef struct OAMAuthenticateInfo OAMAuthenticateInfo;
- struct OAMAuthenticateInfo {
- OAMObjectSpec* objectSpec;
- UInt16 flags;
- UInt16 stage; // intialial set to zero
- OAMStatus objStatus;
- UInt8 uam[64];
- UInt8 reserved[64];
- };
-
- OAMStatus OAMAuthenticateObject(OAMSessionID sessID,
- OAMAuthenticateInfo *authInfo,
- OAMBufferDescriptor* input,
- OAMBufferDescriptor* output,
- OAMOption *options);
-
- OAMStatus OAMChangeObjectKey(OAMSessionID sessID,
- OAMAuthenticateInfo *authInfo,
- OAMBufferDescriptor* input,
- OAMBufferDescriptor* output,
- OAMOption *options);
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=reset
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __OAM__ */
-